Interest point detectors and descriptors are used to obtain image to image correspondence for 3D reconstruction, searching databases of photographs and as a first stage in object or place recognition, among other things. In a typical scenario, an interest point detector is used to select matchable points in an image and a descriptor is used to characterize the region around each interest point typically referred to as an image patch. The output of a descriptor algorithm is a short vector of numbers which is invariant to common image transformations and can be compared with other descriptors in a database to obtain matches according to a distance metric. Many such matches can be used to bring images into correspondence or as part of a scheme for location recognition.